#前四个都是临时的环境变量
#指定c编译器
CC=gcc
#存储向C编译器传递的额外参数和标志。类似于CFLAGS
CFLAGS1=-Wall -c -g 
CFLAGS2= -lpthread

OBJS=main.o data_global.o pthread_zigbee_rcv.o  link_list.o pthread_main.o pthread_camera.o  pthread_refresh.o  pthread_uart_send.o uart_cache.o 

#zigbee是个目标，目标的特征是后面有个冒号，冒号后面是依赖项
#命令的前面是Tab,否则会出错，
#$@目标文件，$^所有的依赖文件，$<第一个依赖文件（右起）
zigbee :$(OBJS)
	$(CC) -o $@ $^ $(CFLAGS2)
$(OBJS):%.o:%.c
	$(CC) $(CFLAGS1) $< -o $@
#表示clean是一个伪目标，而非实际的文件名，可以在执行make clean命令时执行相关的清理规则。
.PHONY:clean
clean:
	rm *.o zigbee

